import { USER_LOGIN,INIT_USER,LOGIN_OUT} from './mutations-types.js'
//引入mutations-types.js里的常量
//存储信息在vuex里面存储才不会乱
export default{

	state:{
		loginStatus:false,//登录状态
		token:null,	//token
		//token:"无效Token", 这个不行，会报错！！！不知道为什么？？？
		userInfo:{}//用户信息：用户的头像|用户昵称
	},
    getters:{},
    mutations:{
/* 		mutations  和 mutations  这里写错了导致无法加载或者报错vuex store
        这里是接受[USER_LOGIN](xxx) xxx就是接收的值
        state是上面的数据（数组），user 是接收的数据 登录成功后后端返回的数据    */    
        //设置
		[USER_LOGIN](state,user){
			state.loginStatus = true;//登录状态
			state.token = user.token;//token值  null和NULL的区别  注册这里有问题
			state.userInfo = user;//用户所有信息
			//持久化存储==》本地存储  存到localStorage vuex不叫本地化存储
			localStorage.setItem('teaUserInfo',JSON.stringify(user));//存一个teaUserInfo以json的形式存储user
		},
		//读取  执行=》一进入到页面就执行  去查询 不管进入到哪个页面都要执行  （答案：在APP.vue里面执行或者在main.js执行）vue脚手架 index.html=》main.js=》app.vue 
		//将数据返回state
		[INIT_USER](state){
			let userInfo = JSON.parse( localStorage.getItem('teaUserInfo'));//get  JSON.parse转换为对象
			if( userInfo ){
				state.loginStatus = true;//登录状态
				state.token = userInfo.token;//token值
				state.userInfo = userInfo;//用户所有信息
			}
		},
		//退出登录
		//loginOut( state ){  //使用常量的方法
			[LOGIN_OUT]( state ){
			state.loginStatus = false;
			state.token = null;
			state.userInfo = {};
			localStorage.removeItem('teaUserInfo');
		}
    },
    actions:{}
}